home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
VRML 2.0 Sourcebook (2nd Edition)
/
VRML 2.0 Sourcebook CD [md5 fed90f4f9c39d5a60d477058775c7e21].iso
/
book
/
mac
/
ch27
/
27fig03.wrl
< prev
next >
Wrap
Text File
|
1996-09-23
|
3KB
|
119 lines
#VRML V2.0 utf8
# The VRML 2.0 Sourcebook
# Copyright [1997] By
# Andrea L. Ames, David R. Nadeau, and John L. Moreland
Group {
children [
NavigationInfo {
headlight FALSE
avatarSize [ 1.0, 1.0, 0.75 ]
},
# Floor (two strips)
Transform {
translation 0.0 0.0 2.5
children DEF Floor Inline { url "dfloor.wrl" }
},
Transform { translation 0.0 0.0 -2.5 children USE Floor },
# Collision group
DEF OrbCollide Collision {
proxy Transform {
translation 0.0 0.6 0.0
children Shape {
geometry Box { size 0.4 1.2 0.4 }
}
}
children [
# Glowing orb with sound effects
DEF OrbSpin Transform {
translation 0.0 1.0 0.0
children [
# Orb light
PointLight {
location 0.3 0.0 0.0
radius 10.0
ambientIntensity 0.2
color 0.7 0.5 0.0
},
# Orb itself
Shape {
appearance Appearance {
# No material, use emissive texturing
texture ImageTexture { url "fire.jpg" }
}
geometry Sphere { radius 0.2 }
},
# Orb sounds
Sound {
source AudioClip {
url "drone1.wav"
loop TRUE
}
intensity 0.5
},
DEF WispyAmp Sound {
source DEF Wispy AudioClip {
url "willow1.wav"
stopTime 1.0
}
intensity 0.0
}
]
},
# Pedestal pyramid
Shape {
appearance DEF PedestalColor Appearance {
material Material { }
}
geometry IndexedFaceSet {
coord Coordinate {
point [
# Around the base
-0.12 0.03 0.12, 0.12 0.03 0.12,
0.12 0.03 -0.12, -0.12 0.03 -0.12,
# Tip
0.0 0.63 0.0,
]
}
coordIndex [
0, 1, 4, -1, 1, 2, 4, -1,
2, 3, 4, -1, 3, 0, 4, -1,
]
solid TRUE
}
},
# Pedestal base
Transform {
translation 0.0 0.015 0.0
children Shape {
appearance USE PedestalColor
geometry Box { size 0.4 0.03 0.4 }
}
},
]
}
# Animation clock
DEF Clock TimeSensor {
cycleInterval 28.0
},
# Orb animation and volume control
DEF OrbSpinner OrientationInterpolator {
key [ 0.0, 0.5, 1.0 ]
keyValue [
0.0 1.0 0.0 0.0,
0.0 1.0 0.0 3.14,
0.0 1.0 0.0 6.28
]
},
DEF WispyVolume ScalarInterpolator {
key [ 0.0, 0.1, 0.9, 1.0 ]
keyValue [ 0.0, 0.6, 0.6, 0.0 ]
}
]
}
ROUTE OrbCollide.collideTime TO Clock.set_startTime
ROUTE OrbCollide.collideTime TO Wispy.set_startTime
ROUTE Clock.fraction_changed TO OrbSpinner.set_fraction
ROUTE Clock.fraction_changed TO WispyVolume.set_fraction
ROUTE OrbSpinner.value_changed TO OrbSpin.set_rotation
ROUTE WispyVolume.value_changed TO WispyAmp.set_intensity